/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.recharge.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 用户充值记录Entity
 * @author gy
 * @version 2017-08-05
 */
public class SiteUserRecharge extends DataEntity<SiteUserRecharge> {
	
	private static final long serialVersionUID = 1L;
	private String orderId;		// 充值流水号userid+时间戳
	private String tradeNo;		// 充值三方交易单号
	private String orderIdConf;		// 确认支付流水号
	private String tradeNoConf;		// 确认支付三方交易号
	private Integer userId;		// 用户ID
	private String amount;		// 认购金额
	private String initialAmount;		// 期初累计充值
	private String finalAmount;		// 期末累计充值
	private Integer productId;		// 认购产品ID
	private String info;		// 说明
	private Integer status;		// 充值状态：0申请中，1充值中，2成功，3失败，4其他
	private Date createTime;		// 申请时间
	private Date replyTime;		// 第三方处理时间
	private String retCode;		// 第三方返回码
	private String retMsg;		// 第三方返回信息
	private String retCodeConf;		// 确认支付第三方返回码
	private String retMsgConf;		// 确认支付第三方返回信息
	private String callbackMsg;		// 第三方回调记录
	private String callbackMsgConf;		// 确认支付三方回调信息
	private Integer type;		// 充值方式:1快捷，2网银
	private String bankCard;		// 充值银行卡号
	
	public SiteUserRecharge() {
		super();
	}

	public SiteUserRecharge(String id){
		super(id);
	}

	@Length(min=1, max=24, message="充值流水号userid+时间戳长度必须介于 1 和 24 之间")
	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	
	@Length(min=0, max=30, message="充值三方交易单号长度必须介于 0 和 30 之间")
	public String getTradeNo() {
		return tradeNo;
	}

	public void setTradeNo(String tradeNo) {
		this.tradeNo = tradeNo;
	}
	
	@Length(min=0, max=30, message="确认支付流水号长度必须介于 0 和 30 之间")
	public String getOrderIdConf() {
		return orderIdConf;
	}

	public void setOrderIdConf(String orderIdConf) {
		this.orderIdConf = orderIdConf;
	}
	
	@Length(min=0, max=30, message="确认支付三方交易号长度必须介于 0 和 30 之间")
	public String getTradeNoConf() {
		return tradeNoConf;
	}

	public void setTradeNoConf(String tradeNoConf) {
		this.tradeNoConf = tradeNoConf;
	}
	
	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}
	
	public String getAmount() {
		return amount;
	}

	public void setAmount(String amount) {
		this.amount = amount;
	}
	
	public String getInitialAmount() {
		return initialAmount;
	}

	public void setInitialAmount(String initialAmount) {
		this.initialAmount = initialAmount;
	}
	
	public String getFinalAmount() {
		return finalAmount;
	}

	public void setFinalAmount(String finalAmount) {
		this.finalAmount = finalAmount;
	}
	
	public Integer getProductId() {
		return productId;
	}

	public void setProductId(Integer productId) {
		this.productId = productId;
	}
	
	@Length(min=0, max=200, message="说明长度必须介于 0 和 200 之间")
	public String getInfo() {
		return info;
	}

	public void setInfo(String info) {
		this.info = info;
	}
	
	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getReplyTime() {
		return replyTime;
	}

	public void setReplyTime(Date replyTime) {
		this.replyTime = replyTime;
	}
	
	@Length(min=0, max=20, message="第三方返回码长度必须介于 0 和 20 之间")
	public String getRetCode() {
		return retCode;
	}

	public void setRetCode(String retCode) {
		this.retCode = retCode;
	}
	
	@Length(min=0, max=200, message="第三方返回信息长度必须介于 0 和 200 之间")
	public String getRetMsg() {
		return retMsg;
	}

	public void setRetMsg(String retMsg) {
		this.retMsg = retMsg;
	}
	
	@Length(min=0, max=20, message="确认支付第三方返回码长度必须介于 0 和 20 之间")
	public String getRetCodeConf() {
		return retCodeConf;
	}

	public void setRetCodeConf(String retCodeConf) {
		this.retCodeConf = retCodeConf;
	}
	
	@Length(min=0, max=200, message="确认支付第三方返回信息长度必须介于 0 和 200 之间")
	public String getRetMsgConf() {
		return retMsgConf;
	}

	public void setRetMsgConf(String retMsgConf) {
		this.retMsgConf = retMsgConf;
	}
	
	@Length(min=0, max=1000, message="第三方回调记录长度必须介于 0 和 1000 之间")
	public String getCallbackMsg() {
		return callbackMsg;
	}

	public void setCallbackMsg(String callbackMsg) {
		this.callbackMsg = callbackMsg;
	}
	
	@Length(min=0, max=1000, message="确认支付三方回调信息长度必须介于 0 和 1000 之间")
	public String getCallbackMsgConf() {
		return callbackMsgConf;
	}

	public void setCallbackMsgConf(String callbackMsgConf) {
		this.callbackMsgConf = callbackMsgConf;
	}
	
	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}
	
	@Length(min=0, max=20, message="充值银行卡号长度必须介于 0 和 20 之间")
	public String getBankCard() {
		return bankCard;
	}

	public void setBankCard(String bankCard) {
		this.bankCard = bankCard;
	}
	
}